package com.centerm.structure.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.centerm.structure.domain.Department;
import com.centerm.structure.dto.DepartmentInfo;

/**
* @ClassName: DepartmentDao
* @Description: 部门数据层接口
* @author czy
* @date 2017年8月10日
 */
@Repository
public interface DepartmentDao {
	
	/**
	 * @Description: 获取所有部门记录
	 * @author czy
	 * @date 2017年8月14日
	 * @param
	 * @return List<Department>
	 */
	List<Department> listAll();
	
	/**
     * @Description: 根据条件获取部门记录
     * @author czy
     * @date 2017年8月14日
     * @param 
     * @return List<Department>
      */
	List<Department> listByParam(DepartmentInfo departmentInfo);
	
	/**
	* @Description: 根据id删除记录
	* @author czy
	* @date 2017年8月10日
	* @param id
	* @return int
	 */
    int deleteById(Integer id);

    /**
     * @Description: 新增记录
     * @author czy
     * @date 2017年8月10日
     * @param record 部门记录
     * @return int
      */
    int insert(Department record);

    /**
     * @Description: 根据id获取记录
     * @author czy
     * @date 2017年8月10日
     * @param id
     * @return 记录
      */
    Department getById(Integer id);

    /**
     * @Description: 更新记录（只针对非空字段）
     * @author czy
     * @date 2017年8月10日
     * @param record 记录
     * @return int
      */
    int update(Department record);

    /**
     * @Description 根据部门ID获取部门详细信息
     * @author lk
     * @date 2017年8月31日
     * @param id
     * @return
     */
    DepartmentInfo getDetailInfoById(@Param("id") Integer id);
}